package com.xuwei.base.sort;
/**
 * 冒泡排序
 * @author David
 * @since 2015年6月13日 下午5:55:13
 * @version 
 * @since JDK 1.6
 */
public class BubbleSort{
	public void sort(int arr[]){
		//定义中间变量
		int temp=0;
		/**
		 * 是否交换（针对有序数组进行算法优化，时间复杂度降为O(n)）
		 */
		boolean didSwap = false;
		//排序
		//外层循环
		for(int i=0;i<arr.length-1;i++)
		{
			//内层循环开始逐个比较，若发现前一个数比后一个数大，则交换
			for(int j=0;j<arr.length-1-i;j++)
			{
				if(arr[j]>arr[j+1])
				{
					//换位
					temp=arr[j];
					arr[j]=arr[j+1];
					arr[j+1]=temp;
					didSwap = true;
				}
			}
			if(!didSwap) return;
		}
		
	}
}
